# python中列表的切片操作
# 通过下标操作一次取出一个元素
# 通过切片操作，一次取出一组连续的元素，相互于得到了一个子列表

# 1.切片操作的基本使用
# 使用[:]的方式进行切片操作,[]中的两个操作表示一段区间。1:3表示取到下标为1一直到下标为3的元素（包含1，不包含3）[1,3)左闭右开
a = [1, 2, 3, 4]
print(a[1:3])

# 2. 使用切片的时候，省略边界
a = [1, 2, 3, 4]

# 开始边界和结束边界全省略，得到列表本身
print(a[:])
# 省略后边界，意思是从开始位置，一直取到整个列表结束
print(a[1:])
# 省略前边界，意思是从列表的 0 号元素开始取，一直取到结束的后边界
print(a[:2])
# 此处切片操作的下标也可以写成负数
print(a[:-1])

# 切片操作是一个比较高效的操作，进行切片的时候，只是取出了原有列表的一部分，并不会设计到“数据的拷贝”

# 3.切片操作还可以指定步长
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
# 这里再多加一个 ’：‘ 再多加一个数字，这个数字就是步长
print(a[::1])
print(a[::2])
print(a[::3])

print(a[1:-1:2])

# 4.步长的数值还可以是负数，当步长为负数的时候，意思是从后往前来取元素
print(a[::-1])
print(a[::-2])

# 5.当我们切片中的范围超出有效下标之后，不会出现异常！而是尽可能的把符合要求的元素获取到
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(a[1:100])


